Skip to content

QA: run_qa v1.6 form + ExplicitImports#117

Merged
ChrisRackauckas merged 2 commits into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports
Jul 2, 2026
Merged

QA: run_qa v1.6 form + ExplicitImports#117
ChrisRackauckas merged 2 commits into
SciML:mainfrom
ChrisRackauckas-Claude:qa-run_qa-v1.6-explicit-imports

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Ignore until reviewed by @ChrisRackauckas.

Brings this repo's QA onto the SciMLTesting 1.6 run_qa form with ExplicitImports enabled.

What changed

  • test/qa/qa.jl: hand-rolled Aqua.test_all + Aqua.test_ambiguities + two ExplicitImports checks → single run_qa(FiniteVolumeMethod; explicit_imports = true, ...).
  • The old ambiguities = false + separate Aqua.test_ambiguities split is collapsed: run_qa's default Aqua.test_all runs (and passes) the ambiguities sub-check.
  • Preserved the one genuine Aqua tweak project_extras = false: the root Project.toml carries only Test in [extras]/[targets]; the real test deps live in test/Project.toml under the grouped-tests folder model, so the root-vs-test consistency check does not apply.
  • test/qa/Project.toml: SciMLTesting compat → "1.6"; dropped ExplicitImports (transitive via SciMLTesting); kept Aqua (the ambiguities child-process needs it a direct dep) and SafeTestsets (the run_tests @safetestset body wrapper does using SafeTestsets under the active QA sub-env).
  • .gitignore: ignore the CI-generated test/qa/Manifest.toml.

ExplicitImports findings (all 6 checks)

  • no_implicit_imports, no_stale_explicit_imports, all_explicit_imports_via_owners, all_qualified_accesses_via_ownerspass as-is.
  • all_qualified_accesses_are_public — failed on other packages' non-public names; ignored via ei_kwargs (each goes public as its base lib releases):
    • AutoSpecialize — SciMLBase
    • each_point, each_point_index, get_centroid, get_edge_midpoints, has_boundary_nodes, has_ghost_triangles, has_vertex, is_ghost_vertex, num_points, num_segments — DelaunayTriangulation
    • front, tail — Base
    • init, solve — CommonSolve
  • all_explicit_imports_are_public — failed on solve (CommonSolve's canonical, non-public extension point that FVM imports and re-exports); ignored.

No @test_broken / jet_broken / ei_broken needed — every finding is a clean FIX (collapse) or IGNORE. No JET (the prior qa.jl had none).

Verification

Run locally against released SciMLTesting 1.6.0 (Pkg-resolved, no dev-from-branch) through the real run_tests harness with GROUP=QA:

Test Summary: | Pass  Total   Time
QA            |   16     16  27.7s

0 fail / 0 error / 0 broken.

🤖 Generated with Claude Code

ChrisRackauckas and others added 2 commits June 25, 2026 05:36
Convert the hand-rolled test/qa/qa.jl (Aqua.test_all + Aqua.test_ambiguities +
ExplicitImports check_no_implicit/stale) to the SciMLTesting 1.6 run_qa form with
ExplicitImports enabled (all 6 checks).

- explicit_imports = true runs the 6 EI checks (4 standard + 2 public-API).
- Preserve the genuine Aqua tweak: project_extras = false (root [extras]/[targets]
  carries only Test; real test deps live in test/Project.toml under the grouped
  folder model, so the root-vs-test consistency check does not apply).
- The old ambiguities=false + separate test_ambiguities split is collapsed:
  run_qa's default Aqua.test_all runs (and passes) the ambiguities sub-check.
- Two public-API EI checks failed on OTHER packages' non-public names; resolved by
  ei_kwargs ignore-lists (no @test_broken needed):
    all_qualified_accesses_are_public: AutoSpecialize (SciMLBase);
      each_point/each_point_index/get_centroid/get_edge_midpoints/
      has_boundary_nodes/has_ghost_triangles/has_vertex/is_ghost_vertex/
      num_points/num_segments (DelaunayTriangulation); front/tail (Base);
      init/solve (CommonSolve).
    all_explicit_imports_are_public: solve (CommonSolve's canonical extension
      point, imported + re-exported).
- test/qa/Project.toml: SciMLTesting compat -> "1.6"; drop ExplicitImports
  (transitive via SciMLTesting); keep Aqua (ambiguities child-proc needs it a
  direct dep); keep SafeTestsets (the run_tests @safetestset body wrapper does
  `using SafeTestsets` under the active qa sub-env).
- .gitignore: ignore the CI-generated test/qa/Manifest.toml.

Verified locally vs released SciMLTesting 1.6.0 via the run_tests harness
(GROUP=QA): QA 16/16 pass, 0 fail / 0 error / 0 broken.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SciMLTesting 1.7.0 runs the two public-API checks
(check_all_qualified_accesses_are_public + check_all_explicit_imports_are_public)
only on Julia >= 1.11, and the base libs have since made the relevant names
public, so the per-repo ignore-lists are now redundant.

- Empty both public-API ignore-lists and drop the now-empty `ei_kwargs`:
    all_qualified_accesses_are_public: AutoSpecialize (SciMLBase 3.24.0);
      each_point / each_point_index / get_centroid / get_edge_midpoints /
      has_boundary_nodes / has_ghost_triangles / has_vertex / is_ghost_vertex /
      num_points / num_segments (DelaunayTriangulation 1.6.6); front / tail
      (Base, public on >= 1.11); init / solve (CommonSolve 0.2.9).
    all_explicit_imports_are_public: solve (CommonSolve 0.2.9).
- Keep the genuine Aqua tweak `project_extras = false` untouched.
- SciMLTesting compat "1.6" caret already admits 1.7; root caret compat already
  admits SciMLBase 3.24.0 / CommonSolve 0.2.9, so no Project.toml change needed.

qa.jl is now `run_qa(FiniteVolumeMethod; explicit_imports = true,
aqua_kwargs = (; project_extras = false))` — no EI ignores, no ei_broken.

Verified against the registered releases (Pkg-resolved, no dev): SciMLTesting
1.7.0, SciMLBase 3.24.0, CommonSolve 0.2.9, DelaunayTriangulation 1.6.6.
- Julia 1.12 (public checks RUN): QA 16/16 pass, 0 fail/0 error/0 broken
  (the two public-API checks pass with no ignore; ispublic=true for every name).
- Julia 1.10 LTS (public checks SKIPPED by SciMLTesting 1.7): QA 14/14 pass.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude marked this pull request as ready for review June 29, 2026 09:51
@ChrisRackauckas ChrisRackauckas merged commit adb2908 into SciML:main Jul 2, 2026
7 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants